package conservare.dao;

import java.util.List;

import javax.persistence.EntityTransaction;

import conservare.modelo.funcionario.Funcionario;

public class FuncionarioDAO extends Dao {

	private static final long serialVersionUID = -8652566999470645721L;
	
	public Funcionario salvar(Funcionario funcionario) {
		
		EntityTransaction transaction = getEm().getTransaction();
		transaction.begin();
		
		if(funcionario.getId() == null)
			getEm().persist(funcionario);
		else
			getEm().merge(funcionario);
		
		transaction.commit();
		
		return funcionario;
	}

	public void excluir(Funcionario funcionario) {
		Funcionario FuncionarioASerRemovido = getEm().merge(funcionario);
		getEm().remove(FuncionarioASerRemovido);
	}

	public Funcionario getById(Integer id) {
		return getPojo(Funcionario.class, id);
	}

	public List<Funcionario> getTodos() {
		return getList(Funcionario.class, "select func from Funcionario func order by func.nome");
	}

}
